using System;

namespace ActivUFRJ.Classes.Geral
{
    public class DBNivelConhecimento : Connection.MySQL
    {
        public DBNivelConhecimento() : base(ref Connection.DBConnection.myConnection)
        {

        }

        private void FillNivelConhecimento(NivelConhecimento notaConhecimento)
        {
            notaConhecimento.ID = Convert.ToInt32(this.TableGetValue("NC_ID"));
            notaConhecimento.Descricao = Convert.ToString(this.TableGetValue("NC_Descricao"));
            notaConhecimento.Valor = Convert.ToInt32(this.TableGetValue("NC_Valor"));
        }

        internal NivelConhecimento[] GetListaNotaConhecimento()
        {
            try
            {
                string SQL = "SELECT * from NIVEL_CONHECIMENTO order by NC_VALOR";

                this.SetSQL(SQL);

                int i = 0;
                NivelConhecimento[] listaNivelConhecimento = new NivelConhecimento[this.GetRowCount()];

                while (i < this.GetRowCount())
                {
                    NivelConhecimento novoNC = new NivelConhecimento();
                    this.FillNivelConhecimento(novoNC);
                    listaNivelConhecimento[i] = novoNC;

                    i++;
                    this.TableMoveNext();
                }

                return listaNivelConhecimento;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        internal bool CarregarNivelConhecimento(NivelConhecimento nivelConhecimento)
        {
            try
            {
                string SQL = "SELECT * from Nivel_Conhecimento where NC_ID = " + nivelConhecimento.ID.ToString();

                this.SetSQL(SQL);
                if (!this.IsTableOver())
                {
                    FillNivelConhecimento(nivelConhecimento);
                    return true;
                }
                else return false;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
    }
}
